1. Field of the Invention
This invention relates to computer data storage systems and, more particularly, to an abstract model of a data storage appliance.
2. Description of the Related Art
There is an increasing need for organizations to store large quantities of data. This need may result from requirements to protect data from loss due to user error, system failure, outages, and disasters, etc. and/or to archive information for regulatory compliance, workflow tracking, etc. It has become common to satisfy the need to store large amounts of data through a variety of data storage appliances. For example, data may be stored in one or more database repositories, file systems, tape drives, or other storage media, either local or remote. Remote data storage appliances may be connected to the sources of data through a conventional data network. By connecting data storage appliances via a network, a distributed data storage infrastructure may be assembled. As the quantity of data increases, data storage appliances may be added to the network. However, it is common to use a variety of data storage appliances that have heterogeneous data formats, capacities, data architectures, communication protocols, physical storage types, interaction models, etc. The resulting heterogeneity leads to a need for data storage applications to understand the complexities of the interfaces to numerous data storage appliances, increasing the complexity and cost of data storage.
In addition to the above considerations, there are typically a variety of data storage applications that may utilize the data storage appliances. For example, in order to avoid the loss of data associated with an application, a data protection application is commonly employed to manage data backup and restore operations. Any data storage application may be required to accommodate heterogeneous data storage appliances. The data storage application may also be required to operate with a new data storage appliance whose characteristics were unknown at the time the data storage application was written. In addition, a requirement to support a wide variety of data storage appliances may result in lengthy and expensive development and revision cycles for a data storage application. Alternatively, if the number of data storage appliances that are supported is restricted, an organization may be prevented from realizing cost savings or technical improvements that become available through innovative data storage appliances.
Accordingly, an efficient method and mechanism for maintaining compatibility between various and changing data storage applications and various and changing data storage appliances is desired.